package cn.biplam.front.template.callback;

import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.component.data.tree.treebase.img.PlusMinus;
import cn.biplam.front.html.base.HtmlWindow;

public interface ITreeCallBack {
	
	/**
	 * 根据树的节点类型和是否是叶子节点返回节点图片名称
	 * @param operatorType  节点操作类型
	 * @param nodeType 节点类型.此节点类型的节点显示当前设置的图片,用于设置同一操作类型节点(operatorType)的不同图片显示
	 * @param isLeaf        是否是叶子节点
	 * @return  节点图片名称
	 */
	public String getNodePic(String operatorType,String nodeType,boolean isLeaf) throws ErrorMessage;
	
	/**
	 * 
	 * @param operatorType  节点类型
	 * @param isLeaf        是否是叶子节点
	 * @param nodeId        节点ID
	 * @return  节点图片名称
	 */
	/**
	 * 根据树的节点类型、是否是叶子节点、节点ID 返回节点的左键脚本
	 * @param pcId 调用树VC的容器id
	 * @param operatorType 操作类型
	 * @param isLeafs 是否是叶子节点
	 * @param nodeId 节点容器id
	 * @param level 级别
	 * @param levelDown 向下取几级
	 * @param showAddFlag 是否显示加号标志
	 * @param showCheckBox 是否显示复选框标志
	 * @param tableName 表名
	 * @param treeAid 树VC的actionId
	 * @param nodeName 节点名称
	 * @return 左键脚本
	 * @throws ErrorMessage
	 */
	public String getLeftClickScript(String pcId,
									 String operatorType,
									 boolean isLeafs,
									 String nodeId,
									 int level,
									 int levelDown,
									 boolean showAddFlag,
									 boolean showCheckBox,
									 String tableName,
									 String treeAid,
									 String nodeName)  throws ErrorMessage ;
	
	public String getNodeOnMouseOver(String operatorType) throws ErrorMessage;
	
	/**
	 * 取加减号图片
	 * @return 加减号图片类
	 * @throws ErrorMessage
	 */
	public PlusMinus getPlusMinus() throws ErrorMessage;
	
	/**
	 * 取左键的目标容器id
	 * @param operatorType 节点操作类型
	 * @return String 左键的目标容器id
	 */
	public String getLeftClickTargetId(String operatorType);
	
	/**
	 * 取左键的行为id
	 * @param operatorType 节点操作类型
	 * @return String 左键的行为id
	 */
	public String getLeftClickActionId(String operatorType);
	
	/**
	 * 取所有左键的目标容器id(格式为:operatorType1#targetId1<operatorType2#targetId2)
	 * @param operatorType 节点操作类型
	 * @return String 左键的目标容器id
	 */
	public String getLeftClickTargetIdAll();
	
	/**
	 * 取所有左键的行为id(格式为:operatorType1#actionId1<operatorType2#actionId2)
	 * @param operatorType 节点操作类型
	 * @return String 左键的行为id
	 */
	public String getLeftClickActionIdAll();
	
	/**
	 * 取树显示的文本字符串
	 * @param nodeId 节点id
	 * @param operatorType 节点类型
	 * @return String 树显示的文本字符串
	 */
	public String getText(String nodeId, String operatorType) ;
	
	/**
	 * 取树显示的文本Htmlwindow对象
	 * @param nodeId nodeId 节点id
	 * @param operatorType 节点类型
	 * @return HtmlWindow 树显示的文本Htmlwindow对象
	 */
	public HtmlWindow getTextHtmlWindow(String nodeId, String operatorType);
}
